"""
该文件实现了对list列表进行队列排序，可以使用add_num进行添加，
传入的data格式为
data = {
            "pwm": pwm,     - 频率
            "timeout": timeout        - 代表线程停止的时间
        }

"""

# 导入threading和time模块
import threading
import time


# 定义一个类
class queue:
    # 初始化方法，创建一个空列表和两个线程
    def __init__(self):
        self.list1 = []
        self.read = threading.Thread(target=self.read_list)

    # 定义一个取出列表的函数
    def read_list(self):
        # 无限循环
        while True:
            # 如果列表为空，等待
            if not self.list1:
                time.sleep(1)
            # 否则，取出列表中的第一个元素，并删除它
            else:
                num = self.list1.pop(0)
                # 暂停这个数字的时间
                time.sleep(num["timeout"])

    # 定义一个启动线程的函数
    def start(self):
        # 启动两个线程
        self.read.start()

    # 定义一个向列表中添加数字的函数
    def add_num(self, data):
        # 将数字添加到列表中
        self.list1.append(data)
